package com.cyzy.homework.service;

import com.cyzy.homework.dto.HomeworkFileDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件服务接口
 */
public interface FileService {
    
    /**
     * 上传文件
     */
    HomeworkFileDTO uploadFile(MultipartFile file, String uploaderId);
    
    /**
     * 批量上传文件
     */
    List<HomeworkFileDTO> uploadFiles(List<MultipartFile> files, String uploaderId);
    
    /**
     * 删除文件
     */
    void deleteFile(Long fileId);
    
    /**
     * 根据ID获取文件信息
     */
    HomeworkFileDTO getFileById(Long fileId);
    
    /**
     * 根据作业提交ID获取文件列表
     */
    List<HomeworkFileDTO> getFilesBySubmitId(Long submitId);
    
    /**
     * 下载文件
     */
    byte[] downloadFile(Long fileId);
    
    /**
     * 获取文件下载URL
     */
    String getFileDownloadUrl(Long fileId);
    
    /**
     * 验证文件类型
     */
    boolean isValidFileType(String fileName);
    
    /**
     * 验证文件大小
     */
    boolean isValidFileSize(long fileSize);
    
    /**
     * 格式化文件大小
     */
    String formatFileSize(long fileSize);
}

